package main

import (
	"context"
	"fmt"
	"github.com/ethereum/go-ethereum/ethclient"
	"log"
)

func main() {
	// 连接以太坊节点
	client, err := ethclient.Dial("https://mainnet.infura.io/v3/9d36cf2e13b0480aa8285bf4744e4f98")
	if err != nil {
		log.Fatal(err)
	}

	// 获取最新的区块号
	header, err := client.HeaderByNumber(context.Background(), nil)
	if err != nil {
		log.Fatal(err)
	}

	// 获取以太坊网络ID
	networkID, err := client.NetworkID(context.Background())
	if err != nil {
		log.Fatal(err)
	}

	// 获取以太坊协议版本
	//protocolVersion, err := client.ProtocolVersion(context.Background())
	//if err != nil {
	//	log.Fatal(err)
	//}

	// 获取以太坊节点的同步状态
	syncProgress, err := client.SyncProgress(context.Background())
	if err != nil {
		log.Fatal(err)
	}

	// 打印节点信息
	fmt.Println("区块号:", header.Number)
	fmt.Println("网络ID:", networkID)
	//fmt.Println("协议版本:", protocolVersion)
	fmt.Println("同步状态:", syncProgress)
}
